package com.mswork.mes.domain;

import java.util.List;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.mswork.common.annotation.Excel;
import com.mswork.common.core.domain.BaseEntity;

/**
 * 工单管理对象 tb_store_order
 *
 * @author ylq
 * @date 2025-03-05
 */
public class StoreOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID（自增）
     */
    private Long orderId;

    /**
     * 车辆批次
     */
    private Long orderBatch;

    /**
     * 项目ID
     */
    @Excel(name = "项目ID")
    private Long projectId;

    /**
     * 取货司机
     */
    @Excel(name = "取货司机")
    private String driver;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String contactPerson;

    /**
     * 负责人
     */
    private String responsiblePerson;

    private Long responsibleId;

    /**
     * 货运方式
     */
    @Excel(name = "货运方式")
    private Long transportType;

    /**
     * 预定用车车牌
     */
    @Excel(name = "预定用车车牌")
    private String bookLicensePlate;

    /**
     * 工单类型
     */
    @Excel(name = "工单类型")
    private Long orderType;

    /**
     * 库管负责人
     */
    private String storePerson;

    /**
     * 工单状态
     */
    @Excel(name = "工单状态")
    private String orderStatus;

    /**
     * 取车时间
     */
    private Date takeCarTime;

    /**
     * 取车时公里数
     */
    private Double takeCarDistance;

    /**
     * 实际用车车牌
     */
    private String factLicensePlate;

    /**
     * 出发时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date departTime;

    /**
     * 到达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date arriveTime;

    /**
     * 返回时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date backTime;

    /**
     * 到厂时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date backStoreTime;

    /**
     * 入库时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date inputStoreTime;

    /**
     * 货物检查
     */
    private Long productCheck;

    /**
     * 货物描述
     */
    private String productDesc;

    /**
     * 还车时间
     */
    private Date returnCarTime;

    /**
     * 车辆状态
     */
    private Long returnCarStatus;

    /**
     * 还车时公里数
     */
    private Double returnCarDistance;

    /**
     * 数据状态
     */
    private Long status;

    private Long userId;

    private Integer companyId;

    private String companyName;

    private String companyPerson;

    private String companyPhone;

    private String orderWholeStatus;

    /**
     * 工单货物信息
     */
    private List<StoreOrderCargo> storeOrderCargoList;
    /**
     * 辅料工单表信息
     */
    private List<StoreOrderAuxiliary> storeOrderAuxiliaryList;

    private String imageCargo;

    private String imageCar;

    private String imageOrder;

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getOrderId() {
        return orderId;
    }

    public Long getResponsibleId() {
        return responsibleId;
    }

    public void setResponsibleId(Long responsibleId) {
        this.responsibleId = responsibleId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public void setOrderBatch(Long orderBatch) {
        this.orderBatch = orderBatch;
    }

    public Long getOrderBatch() {
        return orderBatch;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setContactPerson(String contactPerson) {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() {
        return contactPerson;
    }

    public void setResponsiblePerson(String responsiblePerson) {
        this.responsiblePerson = responsiblePerson;
    }

    public String getResponsiblePerson() {
        return responsiblePerson;
    }

    public void setTransportType(Long transportType) {
        this.transportType = transportType;
    }

    public Long getTransportType() {
        return transportType;
    }

    public void setBookLicensePlate(String bookLicensePlate) {
        this.bookLicensePlate = bookLicensePlate;
    }

    public String getBookLicensePlate() {
        return bookLicensePlate;
    }

    public void setOrderType(Long orderType) {
        this.orderType = orderType;
    }

    public Long getOrderType() {
        return orderType;
    }

    public void setStorePerson(String storePerson) {
        this.storePerson = storePerson;
    }

    public String getStorePerson() {
        return storePerson;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() {
        return orderStatus;
    }

    public void setTakeCarTime(Date takeCarTime) {
        this.takeCarTime = takeCarTime;
    }

    public Date getTakeCarTime() {
        return takeCarTime;
    }

    public void setTakeCarDistance(Double takeCarDistance) {
        this.takeCarDistance = takeCarDistance;
    }

    public Double getTakeCarDistance() {
        return takeCarDistance;
    }

    public void setFactLicensePlate(String factLicensePlate) {
        this.factLicensePlate = factLicensePlate;
    }

    public String getFactLicensePlate() {
        return factLicensePlate;
    }

    public void setDepartTime(Date departTime) {
        this.departTime = departTime;
    }

    public Date getDepartTime() {
        return departTime;
    }

    public void setArriveTime(Date arriveTime) {
        this.arriveTime = arriveTime;
    }

    public Date getArriveTime() {
        return arriveTime;
    }

    public void setBackTime(Date backTime) {
        this.backTime = backTime;
    }

    public Date getBackTime() {
        return backTime;
    }

    public void setBackStoreTime(Date backStoreTime) {
        this.backStoreTime = backStoreTime;
    }

    public Date getBackStoreTime() {
        return backStoreTime;
    }

    public void setInputStoreTime(Date inputStoreTime) {
        this.inputStoreTime = inputStoreTime;
    }

    public Date getInputStoreTime() {
        return inputStoreTime;
    }

    public void setProductCheck(Long productCheck) {
        this.productCheck = productCheck;
    }

    public Long getProductCheck() {
        return productCheck;
    }

    public void setProductDesc(String productDesc) {
        this.productDesc = productDesc;
    }

    public String getProductDesc() {
        return productDesc;
    }

    public void setReturnCarTime(Date returnCarTime) {
        this.returnCarTime = returnCarTime;
    }

    public Date getReturnCarTime() {
        return returnCarTime;
    }

    public void setReturnCarStatus(Long returnCarStatus) {
        this.returnCarStatus = returnCarStatus;
    }

    public Long getReturnCarStatus() {
        return returnCarStatus;
    }

    public void setReturnCarDistance(Double returnCarDistance) {
        this.returnCarDistance = returnCarDistance;
    }

    public Double getReturnCarDistance() {
        return returnCarDistance;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public List<StoreOrderCargo> getStoreOrderCargoList() {
        return storeOrderCargoList;
    }

    public String getImageCargo() {
        return imageCargo;
    }

    public void setImageCargo(String imageCargo) {
        this.imageCargo = imageCargo;
    }

    public String getImageCar() {
        return imageCar;
    }

    public void setImageCar(String imageCar) {
        this.imageCar = imageCar;
    }

    public String getImageOrder() {
        return imageOrder;
    }

    public void setImageOrder(String imageOrder) {
        this.imageOrder = imageOrder;
    }

    public void setStoreOrderCargoList(List<StoreOrderCargo> storeOrderCargoList) {
        this.storeOrderCargoList = storeOrderCargoList;
    }

    public List<StoreOrderAuxiliary> getStoreOrderAuxiliaryList() {
        return storeOrderAuxiliaryList;
    }

    public void setStoreOrderAuxiliaryList(List<StoreOrderAuxiliary> storeOrderAuxiliaryList) {
        this.storeOrderAuxiliaryList = storeOrderAuxiliaryList;
    }

    public String getDriver() {
        return driver;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCompanyPerson() {
        return companyPerson;
    }

    public void setCompanyPerson(String companyPerson) {
        this.companyPerson = companyPerson;
    }

    public String getCompanyPhone() {
        return companyPhone;
    }

    public void setCompanyPhone(String companyPhone) {
        this.companyPhone = companyPhone;
    }

    public String getOrderWholeStatus() {
        return orderWholeStatus;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public void setOrderWholeStatus(String orderWholeStatus) {
        this.orderWholeStatus = orderWholeStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("orderId", getOrderId())
                .append("orderBatch", getOrderBatch())
                .append("projectId", getProjectId())
                .append("driver", getDriver())
                .append("contactPerson", getContactPerson())
                .append("responsiblePerson", getResponsiblePerson())
                .append("transportType", getTransportType())
                .append("bookLicensePlate", getBookLicensePlate())
                .append("orderType", getOrderType())
                .append("storePerson", getStorePerson())
                .append("orderStatus", getOrderStatus())
                .append("takeCarTime", getTakeCarTime())
                .append("takeCarDistance", getTakeCarDistance())
                .append("factLicensePlate", getFactLicensePlate())
                .append("departTime", getDepartTime())
                .append("arriveTime", getArriveTime())
                .append("backTime", getBackTime())
                .append("backStoreTime", getBackStoreTime())
                .append("inputStoreTime", getInputStoreTime())
                .append("productCheck", getProductCheck())
                .append("productDesc", getProductDesc())
                .append("returnCarTime", getReturnCarTime())
                .append("returnCarStatus", getReturnCarStatus())
                .append("returnCarDistance", getReturnCarDistance())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("status", getStatus())
                .append("storeOrderCargoList", getStoreOrderCargoList())
                .toString();
    }
}
